import config from '@/common/config/index.js';


export default class UpdateApp {
	constructor() { //constructor是一个构造方法，用来接收参数
		this.name = "uniapp_update"; //this代表的是实例对象
	 
		this.systemInfo=uni.getSystemInfoSync();

	}

	static init(){
		return new this();
	}
	



	// 检测更新  
	async checkUpdate() {
		let that=this;
		

		// plus.nativeUI.showWaiting("检查更新...");

		uni.request({
			url: config.appUpdateUrl, //仅为示例，并非真实接口地址。
			data: {
				appId: plus.runtime.appid,
				ver: plus.runtime.version,
				type: that.systemInfo.platform,
			},
			// header: {
			// 	'custom-header': 'hello' //自定义请求头信息
			// },
			success: (res) => {
				// plus.nativeUI.closeWaiting();
				// console.log(JSON.stringify(res));
				if(res.data.Result == 1 && res.data.Data.isUpdate){
					uni.showModal({
						title: "更新提示",
						content: `发现新版本:V${res.data.Data.ver},是否更新？`,
						// showCancel: false,
						confirmText: "确定更新",
						success:function(e){
							// console.log('success',e);
							if(e.confirm && !e.cancle)
							
							if (e.confirm) {  
								if(that.systemInfo.platform =='ios'){
									plus.runtime.openURL(res.data.Data.url);
								}else{
									that.downWgt(res.data.Data.url); // 下载升级包  
								}
							} else if (e.cancel) {  
								uni.showToast({
									title:'取消升级！'
								})
								return;
							}  
						},
						fail:function(e){
							console.log('fail',e);
						},
					})
				}
			}
		});
	}

	// 下载安装包  
	// var wgtUrl="http://demo.dcloud.net.cn/test/update/H5EF3C469.wgt";  
	downWgt(wgtUrl) {
		let that = this;
		plus.nativeUI.showWaiting("下载安装包...");
		plus.downloader.createDownload(wgtUrl, {
			filename: "_doc/update/"
		}, function(d, status) {
			if (status == 200) {
				console.log("下载wgt成功：" + d.filename);
				that.installWgt(d.filename); // 安装wgt包  
			} else {
				console.log("下载wgt失败！");
				plus.nativeUI.alert("下载wgt失败！");
			}
			plus.nativeUI.closeWaiting();
		}).start();
	}

	

	// 更新应用资源  
	installWgt(path) {
		plus.nativeUI.showWaiting("安装安装包...");
		plus.runtime.install(path, {}, function() {
			plus.nativeUI.closeWaiting();
			console.log("安装安装包成功！");
			plus.nativeUI.alert("应用资源更新完成！", function() {
				plus.runtime.restart();
			});
		}, function(e) {
			plus.nativeUI.closeWaiting();
			console.log("安装安装包失败[" + e.code + "]：" + e.message);
			plus.nativeUI.alert("安装安装包失败[" + e.code + "]：" + e.message);
		});
	}
}
